package DAO;

import Codigo.Ranking;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class RankingDAO {
    public boolean Cadastrar(Ranking obj)
    {
        Boolean retorno = false;
        String sql = "INSERT INTO ranking (nome, casosresolvidos, dataalteracao)" 
                + "VALUES(?,?,?)";
        PreparedStatement pst = Conexao.getPreparedStatement(sql);
                    try {
                        pst.setString(1, obj.getNome());
                        pst.setInt(2, obj.getCasosresolvidos());
                        pst.setString(3, obj.getDataalteracao());
                        Integer resultado = pst.executeUpdate();
                        if (resultado > 0) {
                            retorno = true;
                        } else {
                            retorno = false;
                        }
                    } catch (SQLException ex) {
                        System.out.println("Erro ao acessar o banco" + ex.getMessage());
                        return false;
                    }
        return retorno;
    }
    public List<Ranking> Listar()
    {
    List<Ranking> lista = new ArrayList<Ranking>();
        String sql = "SELECT * FROM ranking";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
                    try {
                        ResultSet resultado = psm.executeQuery();
                        
                        while(resultado.next())
                        {
                            Ranking obj = new Ranking();
                            obj.setRankingid(resultado.getInt("ranking_id"));
                            obj.setNome(resultado.getString("nome"));
                            obj.setCasosresolvidos(resultado.getInt("casosresolvidos"));
                            obj.setDataalteracao(resultado.getString("dataalteracao"));
                            //adiciona na lista
                            lista.add(obj);
                        }
                    } catch (SQLException ex) {
                        lista = null;
                     
                    }
        return lista;
    }
    
    public Boolean Excluir(Ranking obj)
    {
        Boolean retorno = false;
        
        String sql = "DELETE FROM ranking WHERE ranking_id=?";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
        try{
            psm.setInt(1, obj.getRankingid());
            Integer resultado = psm.executeUpdate();
            if(resultado>0)
            {
                retorno = true;
            }
            else
            {
                retorno = false;
            }
        }
        catch (SQLException ex){
            System.out.println("BD: "+ ex.getMessage());
            }
        return retorno;
    }
}